#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QTcpSocket>
#include <string>
#include <QDebug>
#include <QString>
#include <QMessageBox>
#include <QTimer>

#define DATASIZE 32
#define NAMELEN 40

//***********************************************************************************************
//-----------------------------------------
enum MENU
{
    LOGIN = 1,//查询单词
    CAMERA = 2,   //摄像头
    LIGHT = 3,   //灯
    AIRCON = 4,   //空调
    SMOG = 5,     //烟雾传感器
    TEMP = 6,     //温度
    HUM = 7, //湿度
    INF_RAY = 8,  //人体感应红外传感器
    LIGHT_RAY = 9, //光线传感器
};
//-----------------------------------------
enum MENU2 //判断返回成功还是失败
{
    OK = 0,
    ERROR = -1,
};
//-----------------------------------------
enum userOrDevice //判断是用户还是设备枚举
{
    USER = 1,
    DEVICE,
};
//-----------------------------------------
//***********************************************************************************************

namespace Ui {
class Widget;
}


class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

//***********************************************************************************************

    //登陆请求
    typedef struct
    {
        int op;
        int userOrDevice;
        int userld;
        char data[DATASIZE]; //密码
    }MSG;

    //登陆结果
    struct {
        int result;
    } num;
    //result = 0 登录成功
    //result = 1 密码错误
    //result = 2 服务器内部错误

//***********************************************************************************************

private slots:
    //void connectedSlot(); //建立连接

    //void disconnectSlot(); //关闭连接

    void recvDataSlot(); //接收数据

    void clearData(); //清除数据

    void sendData(); //发送数据

    void on_login_clicked(); //登录按钮

    void on_air_con_clicked();

    //void on_air_con_2_clicked();

    void on_Camera_clicked();

    void on_lamp_clicked(); //点击打开灯光

    void on_temperature_clicked(); //温度

    void on_pushButton_clicked(); //温度页面返回

    void on_smoke_clicked(); //烟雾

//***********************************************************************************************

    void on_Somatosensation_clicked();

    void on_pushButton_2_clicked();

    void on_smoke_2_clicked();

    void on_pushButton_c1_clicked(); //打开摄像头按钮

    void msdisconnected(); //摄像头连接不上的话

    void msconnected();  //摄像头连接上的话

    void recv_show();   //摄像头连接上的话，就可获取画面

    void on_pushButton_c2_clicked(); //暂停

    void on_pushButton_3_clicked(); //关闭并返回

private:
    Ui::Widget *ui;
    QTcpSocket *socket; //套接字
    QTcpSocket *socket2; //套接字2
    MSG msg; //通信结构体变量
    QByteArray data; //结构体转换
    int flag; //返回值
    int tev; //转整形
    QString str; //转整形

    QTimer  *timer; //摄像头用到的计数器
    QPixmap *pixmap; //摄像头获取图片
    bool readsize;
    int picsize;
};

#endif // WIDGET_H
